00001 /////////////////////////////////////////////////////////////////////////////// 00002 /// @file dePortal_priv.hpp 00003 /// 00004 /// @brief Portal culling routines, private header 00005 /// 00006 /// @author Assassin 00007 /// 00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the 00009 /// contents of this file is subject to the Destiny3D Member License which 00010 /// can be found at http://www.destiny3d.com. Any other usage is prohibited. 00011 /// 00012 /// This file is distributed "AS IS" without warranty of any kind. Novus 00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file 00014 /// for any particular purpose. 00015 /// 00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved. 00017 /// 00018 /// <hr> 00019 /// Change History 00020 /// <hr> 00021 /// 00022 /// @date Jan 2002 00023 /// @author Assassin 00024 /// @remarks Creation 00025 /// 00026 /////////////////////////////////////////////////////////////////////////////// 00027 00028 #ifndef DEPORTAL_PRIV_HPP 00029 #define DEPORTAL_PRIV_HPP 00030 00031 #include "deGlobalTypes.hpp" 00032 #include "dePortal.hpp" 00033 #include "deArray.hpp" 00034 #include "deMath.hpp" 00035 00036 #pragma todo(fix the orthographic border case intersection and clipping stuff) 00037 00038 class dePortal : public IdePortal 00039 { 00040 protected: 00041 ~dePortal(); 00042 public: 00043 dePortal(); 00044 dePortal(deVec3d Vertices[], int Num); 00045 int Release(); 00046 00047 IdeVertexBuffer * GetVBuffer(); 00048 deBoolean IsTPortal() const; 00049 void SetTPortal(deBoolean TPortal); 00050 00051 // void ClipFrustum(deTransformInfo * CamPos, const deFrustum &in, deFrustum &out); 00052 deBoolean ClipFrustum(const deTransformInfo & CamPos, const IdePlaneFrustum* in, IdePlaneFrustum* out); 00053 deBoolean IntersectsFrustum(const deTransformInfo & CamPos, const IdePlaneFrustum* f) const; 00054 00055 void SetVertices(deVec3d Vertices[], long Num); 00056 deVec3d* GetVertices(long &Num) const; 00057 00058 deWorldID GetLinkWorldID() const; 00059 deObjectID GetLinkObjectID() const; 00060 void SetLinkWorldID(deWorldID WorldID); 00061 void SetLinkObjectID(deObjectID ObjectID); 00062 deBoolean LinkTo(IdeSceneRoom* SceneRoom); 00063 00064 deBoolean IsPlanar(); 00065 00066 void SetNormal(const deVec3d & v); 00067 void GetNormal(deVec3d & v) const; 00068 00069 void SetPosition(const deTransformInfo & M); 00070 void GetPosition(deTransformInfo & M) const; 00071 void SetTransform(const deTransformInfo & M); 00072 void GetTransform(deTransformInfo & M) const; 00073 void ConcatTransform(deTransformInfo & M); 00074 00075 private: 00076 deWorldID m_LinkWorldID; 00077 deObjectID m_LinkObjectID; 00078 deTransform m_Transform, m_Position; 00079 deTArray <deVec3d> m_Vertices; 00080 IdeVertexBuffer * m_VBuffer; 00081 deBoolean m_VertsChanged; 00082 deBoolean m_DoesTransformation; 00083 deBoolean m_IsPlanar; 00084 deVec3d m_Normal; 00085 }; 00086 00087 #endif
1.3-rc3